ساخت وب اسکرپر با زبان #C | راهنمای کامل برای مبتدی‌ها و حرفه‌ای‌ها

آموزش ساخت وب اسکرپر با زبان #C

در دنیای امروز، داده‌ها مهم‌ ترین دارایی دیجیتال محسوب می‌شوند. بسیاری از وب‌ سایت‌ها اطلاعات ارزشمندی درباره قیمت کالاها، اخبار، مقالات و داده‌های آماری دارند که ممکن است به‌صورت API در دسترس نباشند. اینجاست که مفهومی به نام وب اسکرپینگ (Web Scraping) وارد عمل می‌شود. در این مقاله قصد داریم به شما آموزش دهیم که چگونه با استفاده از زبان #C یک وب اسکرپر حرفه‌ای بسازید.

وب اسکرپینگ چیست؟

وب اسکرپینگ یعنی استخراج خودکار اطلاعات از صفحات وب. مثلاً اگر بخواهید قیمت موبایل‌ها را از چند فروشگاه آنلاین استخراج و مقایسه کنید، می‌توانید به‌ جای کپی‌ کردن دستی، با یک برنامه وب اسکرپر این کاررا در چند ثانیه انجام دهید.

چرا #C برای وب اسکرپینگ مناسب است؟

  • پایداری بالا در پروژه‌های سازمانی
  • پشتیبانی عالی از چند نخی (Multithreading)
  • ادغام ساده با پایگاه‌های داده و UI ویندوز
  • وجود کتابخانه‌های خوب مانند HtmlAgilityPack، AngleSharp و HttpClient

مراحل ساخت یک وب اسکرپر با #C

برای ساخت یک اسکرپر ساده و قدرتمند با #C باید مراحل زیر را طی کنیم:

  1. انتخاب آدرس وب‌سایت هدف (Target URL)
  2. ارسال درخواست HTTP و دریافت HTML
  3. تجزیه (Parse) و استخراج داده‌ها از HTML
  4. ذخیره داده‌ها یا نمایش در رابط کاربری

مرحله ۱: نصب پیش‌نیازها


dotnet new console -n WebScraperDemo
cd WebScraperDemo
dotnet add package HtmlAgilityPack
        

مرحله ۲: ارسال درخواست HTTP


using System.Net.Http;

HttpClient client = new HttpClient();
var response = await client.GetAsync("https://example.com/products");
string html = await response.Content.ReadAsStringAsync();
        

مرحله ۳: تجزیه و تحلیل HTML با HtmlAgilityPack


using HtmlAgilityPack;

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);

var productNodes = doc.DocumentNode.SelectNodes("//div[@class='product']");

foreach (var product in productNodes)
{
    var name = product.SelectSingleNode(".//h2").InnerText.Trim();
    var price = product.SelectSingleNode(".//span[@class='price']").InnerText.Trim();
    
    Console.WriteLine($"نام: {name} - قیمت: {price}");
}
        

مرحله ۴: مدیریت خطاها و آنتی‌بات‌ها

  • استفاده از Headers مرورگر در HttpClient
  • افزودن تاخیر تصادفی بین درخواست‌ها
  • استفاده از PuppeteerSharp یا Playwright برای صفحات جاوا اسکریپت‌ محور

مرحله ۵: ذخیره یا استفاده از داده‌ها


File.AppendAllText("products.txt", $"نام: {name} - قیمت: {price}\n");
        

نکات امنیتی و حقوقی در وب اسکرپینگ

  • بررسی robots.txt سایت
  • رعایت قوانین کپی‌ رایت
  • پرهیز ازایجاد بار زیاد روی سرور سایت مقصد

​​​​​​​​​​​​​​

کتابخانه‌های مفید دیگر برای C# Web Scraping

  • AngleSharp
  • PuppeteerSharp
  • Selenium برای #C

نمونه‌های کاربردی وب اسکرپینگ با #C

  • جمع‌آوری قیمت محصولات از سایت‌های فروشگاهی
  • استخراج آگهی‌ها از دیوار یا شیپور
  • بررسی رتبه سایت‌ها
  • ساخت دیتاست آموزشی از اطلاعات آنلاین

نتیجه‌ گیری

وب اسکرپینگ با زبان #C هم ساده است، هم قدرتمند. با استفاده از ابزارهایی مانند HtmlAgilityPack، HttpClient و کمی مهارت در XPath، می‌توانید از وب‌ سایت‌های مختلف داده‌های مفیدی استخراج کرده و در پروژه‌های شخصی یا تجاری استفاده کنید.

اما همیشه به جنبه‌ های حقوقی و اخلاقی کار هم توجه داشته باشید و از منابع اطلاعاتی به‌ درستی استفاده کنید.